#jinja2: lstrip_blocks: True
bridge:
  # Domain part of the bridge, e.g. matrix.org
  domain: {{ matrix_appservice_discord_bridge_domain|to_json }}
  # This should be your publicly facing URL because Discord may use it to
  # fetch media from the media store.
  homeserverUrl: {{ matrix_appservice_discord_bridge_homeserverUrl|to_json }}
  # Interval at which to process users in the 'presence queue'. If you have
  # 5 users, one user will be processed every 500 milliseconds according to the
  # value below. This has a minimum value of 250.
  # WARNING: This has a high chance of spamming the homeserver with presence
  # updates since it will send one each time somebody changes state or is online.
  presenceInterval: 500
  # Disable setting presence for 'ghost users' which means Discord users on Matrix
  # will not be shown as away or online.
  disablePresence: {{ matrix_appservice_discord_bridge_disablePresence|to_json }}
  # Disable sending typing notifications when somebody on Discord types.
  disableTypingNotifications: false
  # Disable deleting messages on Discord if a message is redacted on Matrix.
  disableDeletionForwarding: false
  # Disable portal bridging, where Matrix users can search for unbridged Discord
  # rooms on their Matrix server.
  disablePortalBridging: {{ matrix_appservice_discord_bridge_disablePortalBridging|to_json }}
  # Enable users to bridge rooms using !discord commands. See
  # https://t2bot.io/discord for instructions.
  enableSelfServiceBridging: {{ matrix_appservice_discord_bridge_enableSelfServiceBridging|to_json }}
  # Disable sending of read receipts for Matrix events which have been
  # successfully bridged to Discord.
  disableReadReceipts: false
  # Disable Join Leave echos from matrix
  disableJoinLeaveNotifications: false
  # Disable Invite echos from matrix
  disableInviteNotifications: false
  # Disable Room Topic echos from matrix
  disableRoomTopicNotifications: false
  # Auto-determine the language of code blocks (this can be CPU-intensive)
  determineCodeLanguage: false
  # MXID of an admin user that will be PMd if the bridge experiences problems. Optional
  adminMxid: {{ matrix_admin | to_json }}
  # The message to send to the bridge admin if the Discord token is not valid
  invalidTokenMessage: 'Your Discord bot token seems to be invalid, and the bridge cannot function. Please update it in your bridge settings and restart the bridge'
# Authentication configuration for the discord bot.
auth:
  clientID: {{ matrix_appservice_discord_client_id | string|to_json }}
  botToken: {{ matrix_appservice_discord_bot_token|to_json }}
  # You must enable "Privileged Gateway Intents" in your bot settings on discord.com (e.g. https://discord.com/developers/applications/12345/bot)
  # for this to work
  usePrivilegedIntents: {{ matrix_appservice_discord_auth_usePrivilegedIntents|to_json }}
logging:
  # What level should the logger output to the console at.
  console: "warn" # Valid values: silent, error, warn, http, info, verbose, silly
  lineDateFormat: "MMM-D HH:mm:ss.SSS" # This is in moment.js format
  # files:
  #   - file: "debug.log"
  #     disable:
  #       - "PresenceHandler" # Will not capture presence logging
  #   - file: "warn.log" # Will capture warnings
  #     level: "warn"
  #   - file: "botlogs.log" # Will capture logs from DiscordBot
  #     level: "info"
  #     enable:
  #       - "DiscordBot"
database:
  # You may either use SQLite or Postgresql for the bridge database, which contains
  # important mappings for events and user puppeting configurations.
  # Use the filename option for SQLite, or connString for Postgresql.
  # If you are migrating, see https://github.com/matrix-org/matrix-appservice-discord/blob/master/docs/howto.md#migrate-to-postgres-from-sqlite
  # WARNING: You will almost certainly be fine with sqlite unless your bridge
  # is in heavy demand and you suffer from IO slowness.
  {% if matrix_appservice_discord_database_engine == 'sqlite' %}
  filename: {{ matrix_appservice_discord_database_filename|to_json }}
  {% else %}
  connString: {{ matrix_appservice_discord_database_connString|to_json }}
  {% endif %}
room:
  # Set the default visibility of alias rooms, defaults to "public".
  # One of: "public", "private"
  defaultVisibility: "public"
channel:
    # Pattern of the name given to bridged rooms.
    # Can use :guild for the guild name and :name for the channel name.
    namePattern: "[Discord] :guild :name"
    # Changes made to rooms when a channel is deleted.
    deleteOptions:
       # Prefix the room name with a string.
       #namePrefix: "[Deleted]"
       # Prefix the room topic with a string.
       #topicPrefix: "This room has been deleted"
       # Disable people from talking in the room by raising the event PL to 50
       disableMessaging: false
       # Remove the discord alias from the room.
       unsetRoomAlias: true
       # Remove the room from the directory.
       unlistFromDirectory: true
       # Set the room to be unavailable for joining without an invite.
       setInviteOnly: true
       # Make all the discord users leave the room.
       ghostsLeave: true
limits:
    # Delay in milliseconds between discord users joining a room.
    roomGhostJoinDelay: 6000
    # Lock timeout in milliseconds before sending messages to discord to avoid
    # echos. Default is rather high as the lock will most likely time out
    # before anyways.
    # echos = (Copies of a sent message may arrive from discord before we've
    # fininished handling it, causing us to echo it back to the room)
    discordSendDelay: 1500
    # Set a maximum of rooms to be bridged.
    # roomCount: 20
ghosts:
    # Pattern for the ghosts nick, available is :nick, :username, :tag and :id
    nickPattern: ":nick"
    # Pattern for the ghosts username, available is :username, :tag and :id
    usernamePattern: ":username#:tag"
# Prometheus-compatible metrics endpoint
metrics:
    enable: false
    port: 9001
    host: "127.0.0.1"
